package com.shrct.businessprocess.purchase;

import com.shrct.businessprocess.project.RCProjectMoney;
import com.shrct.businessprocess.purchase.RCBaseProductPurchaseBudget;
import com.shrct.businessprocess.purchase.RCTransformCostPayProcess;
import com.shrct.businessprocess.purchase.impl.RCTransferCostTransactionImpl;
import com.shrct.businessprocess.purchase.proxy.RCTransferCostTransactionProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;

@EntityImplementation(implementBy = RCTransferCostTransactionImpl.class)
public interface RCTransferCostTransaction extends IModelObject {
  public abstract RCBaseProductPurchaseBudget getSourceBudget();
  
  public abstract RCTransferCostTransaction setSourceBudget(final RCBaseProductPurchaseBudget sourceBudget);
  
  public abstract RCBaseProductPurchaseBudget getTargetBudget();
  
  public abstract RCTransferCostTransaction setTargetBudget(final RCBaseProductPurchaseBudget targetBudget);
  
  public abstract RCProjectMoney getAmount();
  
  public abstract RCTransferCostTransaction setAmount(final RCProjectMoney amount);
  
  public abstract String getComment();
  
  public abstract RCTransferCostTransaction setComment(final String comment);
  
  public abstract void commit();
  
  public abstract RCTransformCostPayProcess getProcess();
  
  public abstract RCTransferCostTransactionProxy toProxy();
}
